package com.coolrui.common.utils;

import cn.hutool.core.util.RandomUtil;
import org.springframework.stereotype.Component;

/**
 * 随机生成中文姓名，性别，Email，手机号，住址
 */
@Component
public class MockDataUtils {
    private static final String letters = "abcdefghijklmnopqrstuvwxyz0123456789";
    private static final String firstName = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯咎管卢莫经房裘缪干解应宗宣丁贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄魏加封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘姜詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲台从鄂索咸籍赖卓蔺屠蒙池乔阴郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀郏浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庚终暨居衡步都耿满弘匡国文寇广禄阙东殴殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后江红游竺权逯盖益桓公万俟司马上官欧阳夏侯诸葛闻人东方赫连皇甫尉迟公羊澹台公冶宗政濮阳淳于仲孙太叔申屠公孙乐正轩辕令狐钟离闾丘长孙慕容鲜于宇文司徒司空亓官司寇仉督子车颛孙端木巫马公西漆雕乐正壤驷公良拓拔夹谷宰父谷粱晋楚阎法汝鄢涂钦段干百里东郭南门呼延归海羊舌微生岳帅缑亢况后有琴梁丘左丘东门西门商牟佘佴伯赏南宫墨哈谯笪年爱阳佟第五言福百家姓续";
    private static final String girl = "秀娟英华慧巧美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅琳素云莲真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦岚苑婕馨瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥筠柔竹霭凝晓欢霄枫芸菲寒伊亚宜可姬舒影荔枝思丽 ";
    private static final String boy = "伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘";
    private static final String[] city = "北京市,上海市,天津市,重庆市,石家庄市,唐山市,秦皇岛市,邯郸市,邢台市,保定市,张家口市,承德市,沧州市,廊坊市,衡水市,太原市,大同市,阳泉市,长治市,晋城市,朔州市,晋中市,运城市,忻州市,临汾市,吕梁市,呼和浩特市,包头市,乌海市,赤峰市,通辽市,鄂尔多斯市,呼伦贝尔市,巴彦淖尔市,乌兰察布市,锡林郭勒盟,兴安盟,沈阳市,大连市,鞍山市,抚顺市,本溪市,丹东市,锦州市,营口市,阜新市,辽阳市,盘锦市,铁岭市,朝阳市,葫芦岛市,长春市,吉林市,四平市,辽源市,通化市,白山市,松原市,白城市,延边朝鲜族自治州,哈尔滨市,齐齐哈尔市,鸡西市,鹤岗市,双鸭山市,大庆市,伊春市,佳木斯市,七台河市,牡丹江市,黑河市,绥化市,南京市,无锡市,徐州市,常州市,苏州市,南通市,连云港市,淮安市,盐城市,扬州市,镇江市,泰州市,宿迁市,杭州市,宁波市,温州市,嘉兴市,湖州市,绍兴市,金华市,衢州市,舟山市,台州市,丽水市,合肥市,芜湖市,蚌埠市,淮南市,马鞍山市,淮北市,铜陵市,安庆市,黄山市,滁州市,阜阳市,宿州市,六安市,亳州市,池州市,宣城市,福州市,厦门市,莆田市,三明市,泉州市,漳州市,南平市,龙岩市,宁德市,南昌市,景德镇市,萍乡市,九江市,新余市,鹰潭市,赣州市,吉安市,宜春市,抚州市,上饶市,济南市,青岛市,淄博市,枣庄市,东营市,烟台市,潍坊市,济宁市,泰安市,威海市,日照市,临沂市,德州市,聊城市,滨州市,菏泽市,郑州市,开封市,洛阳市,平顶山市,安阳市,鹤壁市,濮阳市,许昌市,漯河市,三门峡市,南阳市,商丘市,信阳市,周口市,驻马店市,武汉市,黄石市,十堰市,宜昌市,襄阳市,鄂州市,荆门市,孝感市,荆州市,黄冈市,咸宁市,随州市,长沙市,株洲市,湘潭市,衡阳市,邵阳市,岳阳市,常德市,张家界市,益阳市,郴州市,永州市,怀化市,娄底市,广州市,韶关市,深圳市,珠海市,汕头市,佛山市,江门市,湛江市,茂名市,肇庆市,惠州市,梅州市,汕尾市,河源市,阳江市,清远市,东莞市,中山市,潮州市,揭阳市,云浮市,南宁市,柳州市,桂林市,梧州市,北海市,防城港市,钦州市,贵港市,玉林市,百色市,贺州市,河池市,来宾市,崇左市,海口市,三亚市,重庆市,成都市,自贡市,攀枝花市,泸州市,德阳市,绵阳市,广元市,遂宁市,内江市,乐山市,南充市,眉山市,宜宾市,广安市,达州市,雅安市,巴中市,资阳市,贵阳市,六盘水市,遵义市,安顺市,毕节市,铜仁市,昆明市,曲靖市,玉溪市,保山市,昭通市,普洱市,临沧市,拉萨市,日喀则市,昌都市,林芝市,山南市,那曲市,西安市,铜川市,宝鸡市,咸阳市,渭南市,延安市,汉中市,榆林市,安康市,商洛市,兰州市,嘉峪关市,金昌市,白银市,天水市,武威市,张掖市,酒泉市,庆阳市,平凉市,定西市,陇南市,临夏回族自治州,甘南藏族自治州,西宁市,海东市,银川市,石嘴山市,吴忠市,固原市,中卫市,乌鲁木齐市,克拉玛依市,吐鲁番市,哈密市,和田市,阿克苏市,喀什市,克孜勒苏柯尔克孜自治州,巴音郭楞蒙古自治州,昌吉回族自治州,博尔塔拉蒙古自治州,伊犁哈萨克自治州,塔城地区,阿勒泰地区,香港特别行政区,澳门特别行政区,昆山市,义乌市,江阴市,常熟市,张家港市,太仓市,宜兴市,慈溪市,晋江市,余姚市,海宁市,乐清市,瑞安市,嵊州市,诸暨市,温岭市,桐乡市,丹阳市,如皋市,启东市,海安市,溧阳市,靖江市,东阳市,临海市,平湖市,德清县,南安市,石狮市,福清市,胶州市,滕州市,荣成市,即墨市,龙口市,莱西市,肥城市,寿光市,招远市,莱州市,邹城市,诸城市,高邮市,仪征市,句容市,扬中市,兴化市,泰兴市,靖江市,江油市,都江堰市,彭州市,邛崃市,简阳市,崇州市,广汉市,什邡市,绵竹市".split(",");
    private static final String[] road = "重庆大厦,黑龙江路,十梅庵街,遵义路,湘潭街,瑞金广场,仙山街,仙山东路,仙山西大厦,白沙河路,赵红广场,机场路,民航街,长城南路,流亭立交桥,虹桥广场,长城大厦,礼阳路,风岗街,中川路,白塔广场,兴阳路,文阳街,绣城路,河城大厦,锦城广场,崇阳街,华城路,康城街,正阳路,和阳广场,中城路,江城大厦,顺城路,安城街,山城广场,春城街,国城路,泰城街,德阳路,明阳大厦,春阳路,艳阳街,秋阳路,硕阳街,青威高速,瑞阳街,丰海路,双元大厦,惜福镇街道,夏庄街道,古庙工业园,中山街,太平路,广西街,潍县广场,博山大厦,湖南路,济宁街,芝罘路,易州广场,荷泽四路,荷泽二街,荷泽一路,荷泽三大厦,观海二广场,广西支街,观海一路,济宁支街,莒县路,平度广场,明水路,蒙阴大厦,青岛路,湖北街,江宁广场,郯城街,天津路,保定街,安徽路,河北大厦,黄岛路,北京街,莘县路,济南街,宁阳广场,日照街,德县路,新泰大厦,荷泽路,山西广场,沂水路,肥城街,兰山路,四方街,平原广场,泗水大厦,浙江路,曲阜街,寿康路,河南广场,泰安路,大沽街,红山峡支路,西陵峡一大厦,台西纬一广场,台西纬四街,台西纬二路,西陵峡二街,西陵峡三路,台西纬三广场,台西纬五路,明月峡大厦,青铜峡路,台西二街,观音峡广场,瞿塘峡街,团岛二路,团岛一街,台西三路,台西一大厦,郓城南路,团岛三街,刘家峡路,西藏二街,西藏一广场,台西四街,三门峡路,城武支大厦,红山峡路,郓城北广场,龙羊峡路,西陵峡街,台西五路,团岛四街,石村广场,巫峡大厦,四川路,寿张街,嘉祥路,南村广场,范县路,西康街,云南路,巨野大厦,西江广场,鱼台街,单县路,定陶街,滕县路,钜野广场,观城路,汶上大厦,朝城路,滋阳街,邹县广场,濮县街,磁山路,汶水街,西藏路,城武大厦,团岛路,南阳街,广州路,东平街,枣庄广场,贵州街,费县路,南海大厦,登州路,文登广场,信号山支路,延安一街,信号山路,兴安支街,福山支广场,红岛支大厦,莱芜二路,吴县一街,金口三路,金口一广场,伏龙山路,鱼山支街,观象二路,吴县二大厦,莱芜一广场,金口二街,海阳路,龙口街,恒山路,鱼山广场,掖县路,福山大厦,红岛路,常州街,大学广场,龙华街,齐河路,莱阳街,黄县路,张店大厦,祚山路,苏州街,华山路,伏龙街,江苏广场,龙江街,王村路,琴屿大厦,齐东路,京山广场,龙山路,牟平街,延安三路,延吉街,南京广场,东海东大厦,银川西路,海口街,山东路,绍兴广场,芝泉路,东海中街,宁夏路,香港西大厦,隆德广场,扬州街,郧阳路,太平角一街,宁国二支路,太平角二广场,天台东一路,太平角三大厦,漳州路一路,漳州街二街,宁国一支广场,太平角六街,太平角四路,天台东二街,太平角五路,宁国三大厦,澳门三路,江西支街,澳门二路,宁国四街,大尧一广场,咸阳支街,洪泽湖路,吴兴二大厦,澄海三路,天台一广场,新湛二路,三明北街,新湛支路,湛山五街,泰州三广场,湛山四大厦,闽江三路,澳门四街,南海支路,吴兴三广场,三明南路,湛山二街,二轻新村镇,江南大厦,吴兴一广场,珠海二街,嘉峪关路,高邮湖街,湛山三路,澳门六广场,泰州二路,东海一大厦,天台二路,微山湖街,洞庭湖广场,珠海支街,福州南路,澄海二街,泰州四路,香港中大厦,澳门五路,新湛三街,澳门一路,正阳关街,宁武关广场,闽江四街,新湛一路,宁国一大厦,王家麦岛,澳门七广场,泰州一路,泰州六街,大尧二路,青大一街,闽江二广场,闽江一大厦,屏东支路,湛山一街,东海西路,徐家麦岛函谷关广场,大尧三路,晓望支街,秀湛二路,逍遥三大厦,澳门九广场,泰州五街,澄海一路,澳门八街,福州北路,珠海一广场,宁国二路,临淮关大厦,燕儿岛路,紫荆关街,武胜关广场,逍遥一街,秀湛四路,居庸关街,山海关路,鄱阳湖大厦,新湛路,漳州街,仙游路,花莲街,乐清广场,巢湖街,台南路,吴兴大厦,新田路,福清广场,澄海路,莆田街,海游路,镇江街,石岛广场,宜兴大厦,三明路,仰口街,沛县路,漳浦广场,大麦岛,台湾街,天台路,金湖大厦,高雄广场,海江街,岳阳路,善化街,荣成路,澳门广场,武昌路,闽江大厦,台北路,龙岩街,咸阳广场,宁德街,龙泉路,丽水街,海川路,彰化大厦,金田路,泰州街,太湖路,江西街,泰兴广场,青大街,金门路,南通大厦,旌德路,汇泉广场,宁国路,泉州街,如东路,奉化街,鹊山广场,莲岛大厦,华严路,嘉义街,古田路,南平广场,秀湛路,长汀街,湛山路,徐州大厦,丰县广场,汕头街,新竹路,黄海街,安庆路,基隆广场,韶关路,云霄大厦,新安路,仙居街,屏东广场,晓望街,海门路,珠海街,上杭路,永嘉大厦,漳平路,盐城街,新浦路,新昌街,高田广场,市场三街,金乡东路,市场二大厦,上海支路,李村支广场,惠民南路,市场纬街,长安南路,陵县支街,冠县支广场,小港一大厦,市场一路,小港二街,清平路,广东广场,新疆路,博平街,港通路,小港沿,福建广场,高唐街,茌平路,港青街,高密路,阳谷广场,平阴路,夏津大厦,邱县路,渤海街,恩县广场,旅顺街,堂邑路,李村街,即墨路,港华大厦,港环路,馆陶街,普集路,朝阳街,甘肃广场,港夏街,港联路,陵县大厦,上海路,宝山广场,武定路,长清街,长安路,惠民街,武城广场,聊城大厦,海泊路,沧口街,宁波路,胶州广场,莱州路,招远街,冠县路,六码头,金乡广场,禹城街,临清路,东阿街,吴淞路,大港沿,辽宁路,棣纬二大厦,大港纬一路,贮水山支街,无棣纬一广场,大港纬三街,大港纬五路,大港纬四街,大港纬二路,无棣二大厦,吉林支路,大港四街,普集支路,无棣三街,黄台支广场,大港三街,无棣一路,贮水山大厦,泰山支路,大港一广场,无棣四路,大连支街,大港二路,锦州支街,德平广场,高苑大厦,长山路,乐陵街,临邑路,嫩江广场,合江路,大连街,博兴路,蒲台大厦,黄台广场,城阳街,临淄路,安邱街,临朐路,青城广场,商河路,热河大厦,济阳路,承德街,淄川广场,辽北街,阳信路,益都街,松江路,流亭大厦,吉林路,恒台街,包头路,无棣街,铁山广场,锦州街,桓台路,兴安大厦,邹平路,胶东广场,章丘路,丹东街,华阳路,青海街,泰山广场,周村大厦,四平路,台东西七街,台东东二路,台东东七广场,台东西二路,东五街,云门二路,芙蓉山村,延安二广场,云门一街,台东四路,台东一街,台东二路,杭州支广场,内蒙古路,台东七大厦,台东六路,广饶支街,台东八广场,台东三街,四平支路,郭口东街,青海支路,沈阳支大厦,菜市二路,菜市一街,北仲三路,瑞云街,滨县广场,庆祥街,万寿路,大成大厦,芙蓉路,历城广场,大名路,昌平街,平定路,长兴街,浦口广场,诸城大厦,和兴路,德盛街,宁海路,威海广场,东山路,清和街,姜沟路,雒口大厦,松山广场,长春街,昆明路,顺兴街,利津路,阳明广场,人和路,郭口大厦,营口路,昌邑街,孟庄广场,丰盛街,埕口路,丹阳街,汉口路,洮南大厦,桑梓路,沾化街,山口路,沈阳街,南口广场,振兴街,通化路,福寺大厦,峄县路,寿光广场,曹县路,昌乐街,道口路,南九水街,台湛广场,东光大厦,驼峰路,太平山,标山路,云溪广场,太清路".split(",");
    private static final String[] telFirst = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153".split(",");
    private static final String[] goods = "海飞丝洗发水,潘婷护发素,力士沐浴露,佳洁士牙膏,高露洁牙膏,中华牙膏,舒客牙刷,飞科剃须刀,吉列剃须刀,清扬洗发水,沙宣护发素,多芬沐浴露,欧乐B牙膏,黑人牙膏,维达卫生纸,心相印抽纸,清风厨房纸巾,蓝月亮洗衣液,立白洗衣粉,超能洗洁精,舒肤佳香皂,上海硫磺皂,力士香皂,狮王牙刷,舒适达牙膏,云南白药牙膏,全棉时代毛巾,洁丽雅毛巾,金号浴巾,花王卫生巾,苏菲卫生巾,ABC卫生巾,好奇纸尿裤,帮宝适纸尿裤,维达湿纸巾,心相印湿纸巾,棉柔世家化妆棉,滴露洗手液,威露士消毒液,榄菊空气清新剂,雷达驱蚊液,六神花露水,安热沙防晒霜,理肤泉防晒霜,兰蔻面膜,SK-II面膜,悦木之源面膜,芙丽芳丝爽肤水,雅诗兰黛乳液,兰蔻面霜,雅漾眼霜,迪奥口红,纪梵希唇膏,美宝莲粉底液,完美日记粉饼,3CE腮红,卡姿兰眼影,花西子眉笔,兰蔻眼线笔,美宝莲睫毛膏,贝德玛卸妆水,植村秀卸妆油,芙丽芳丝卸妆乳,芙丽芳丝洗面奶,欧莱雅洗面奶,悦诗风吟洗面奶,OPI指甲油,屈臣氏指甲刀,贝印指甲锉,飞科梳子,谭木匠发夹,流行美发圈,拉芳发绳,杰士派发蜡,施华蔻发胶,沙宣定型喷雾,戴森吹风机,飞科卷发棒,松下直发器,飞利浦电熨斗,南极人挂烫机,南极人衣架,晾霸晾衣架,太力收纳盒,爱仕达收纳箱,无印良品鞋架,宜家衣柜,收纳博士抽屉分隔板,拓牛垃圾桶,美丽雅垃圾袋,妙洁拖把,美丽雅扫帚,好媳妇簸箕,威猛先生清洁刷,3M玻璃刮,妙洁抹布,美丽雅海绵擦,钢丝球,妙洁百洁布,恒洁马桶刷,美丽雅浴室刷,美丽雅厨房刷,妙洁保鲜膜,佳能保鲜袋,妙洁铝箔纸,美丽雅密封袋,乐扣密封罐,虎牌真空机,美丽雅真空袋,太力米桶,乐扣面盆,膳魔师水桶,炊大皇水瓢,双立人菜板,邓家刀菜刀,十八子作水果刀,张小泉剪刀,贝印削皮器,瑞士军刀开瓶器,双立人起子,双立人筷子,苏泊尔勺子,华光叉子,乐扣碗,苏泊尔盘子,虎牌杯子,膳魔师水杯,富光保温杯,象印玻璃杯,星巴克马克杯,乐扣饭盒,苏泊尔便当盒,虎牌午餐盒,膳魔师保温饭盒,象印运动水壶,虎牌水壶,美的烧水壶,德龙咖啡壶,象印茶壶,雀巢咖啡杯,星巴克茶杯,金灶茶具套装,金灶茶漏,金灶茶盘,雀巢咖啡豆,星巴克咖啡粉,立顿茶叶,艺福堂花茶,八马绿茶,正兴德红茶,香飘飘奶茶,伊利奶粉,桂格麦片,奥利奥饼干,康师傅面包,好丽友蛋糕,德芙巧克力,绿箭口香糖,乐事薯片,三只松鼠坚果,良品铺子果脯,百草味水果干,统一方便面,海底捞火锅底料,海天调味料,海天酱油,恒顺醋,王致和料酒,李锦记蚝油,太太乐鸡精,中盐盐,太古糖,莲花味精,金龙鱼食用油,刀唛橄榄油,胡姬花花生油,多力玉米油,福临门芝麻油,老干妈辣椒酱,海天豆瓣酱,李锦记甜面酱,小龙坎火锅蘸料,海底捞烧烤调料,川娃子凉拌菜调料,湾仔码头速冻水饺,思念速冻包子,三全速冻饺子,龙凤汤圆,三全元宵,康师傅速食汤,统一方便米饭,自嗨锅自热火锅,莫小仙自热米饭,好欢螺螺蛳粉,螺霸王酸辣粉,白象米粉,克明面条,双塔粉丝,海底捞火锅食材,盒马烧烤食材,永辉蔬菜,百果园水果,盒马肉类,叮咚买菜海鲜,良品铺子零食,三只松鼠零食大礼包,元气森林饮料,农夫山泉矿泉水,怡宝纯净水,脉动功能饮料,汇源果汁,喜茶奶茶,雀巢咖啡饮料,蒙牛牛奶,伊利酸奶,维维豆奶,维他奶植物奶,皇家宠物食品,渴望猫粮,冠能狗粮,喵洁客猫砂,渴望狗零食,猫太郎猫玩具,顽皮狗玩具,pidan宠物用品,猫殿下猫抓板,宜特狗窝,猫砂盆,小佩宠物梳,多格漫宠物沐浴露,小林制药宠物指甲剪,卫仕宠物牙刷,未卡宠物牙膏,飞鹤婴儿奶粉,爱他美婴儿奶粉,花王婴儿纸尿裤,好奇婴儿纸尿裤,全棉时代婴儿湿纸巾,好奇婴儿湿巾,好孩子婴儿衣服,费雪婴儿玩具,好孩子婴儿推车,小龙哈彼婴儿床,贝亲婴儿餐具,新安怡婴儿奶瓶,贝亲婴儿奶嘴,全棉时代婴儿围兜,可优比婴儿口水巾,强生婴儿洗发水,妙思乐婴儿沐浴露,艾维诺婴儿护臀膏,郁美净婴儿面霜,贝亲婴儿爽身粉,爱护婴儿洗衣液,晨光学生文具,得力中性笔,真彩圆珠笔,马可铅笔,绘儿乐橡皮,得力尺子,晨光修正带,斑马荧光笔,三菱记号笔,国誉胶水,得力固体胶,晨光剪刀,齐心订书机,得力订书钉,国誉回形针,齐心长尾夹".split(",");
    private static final String[] email = "@gmail.com,@yahoo.com,@msn.com,@hotmail.com,@aol.com,@ask.com,@live.com,@qq.com,@0355.net,@163.com,@163.net,@263.net,@3721.net,@yeah.net,@googlemail.com,@126.com,@sina.com,@sohu.com,@yahoo.com.cn".split(",");

    public int getNum(int start, int end) {
        return (int) (Math.random() * (end - start + 1) + start);
    }

    /**
     * 返回手机号码
     */
    public String getMobile() {
        int index = getNum(0, telFirst.length - 1);
        String first = telFirst[index];
        String second = String.valueOf(getNum(1, 888) + 10000).substring(1);
        String third = String.valueOf(getNum(1, 9100) + 10000).substring(1);
        return first + second + third;
    }

    /**
     * 返回随机性别的中文姓名
     */
    public String getName() {
        int sex = getNum(1, 2);
        return getName(sex);
    }


    /**
     * 返回指定性别的中文姓名
     *
     * @param sex 1男2女
     */
    public String getName(int sex) {
        int index = getNum(0, firstName.length() - 1);
        String first = firstName.substring(index, index + 1);
        String str = boy;
        int length = boy.length();
        if (sex == 2) {
            str = girl;
            length = girl.length();
        }
        index = getNum(0, length - 1);
        String second = str.substring(index, index + 1);
        int hasThird = getNum(0, 1);
        String third = "";
        if (hasThird == 1) {
            index = getNum(0, length - 1);
            third = str.substring(index, index + 1);
        }
        return first + second + third;
    }

    /**
     * 返回随机城市ID
     */
    public Integer getCityId() {
        return getNum(0, city.length - 1);
    }

    /**
     * 返回指定的城市名称
     */
    public String getCityName(int cityId) {
        if (cityId >= 0 && cityId < city.length) {
            return city[cityId];
        } else {
            return "未知城市";
        }
    }

    /**
     * 返回地址
     */
    public String getAddress() {
        int index = getNum(0, road.length - 1);
        String first = road[index];
        String second = String.valueOf(getNum(60, 160)) + "号";
        String third = getNum(1, 3) + "-" + getNum(1, 10);
        return first + second + third;
    }

    /**
     * 返回商品
     */
    public String getGoods() {
        int index = getNum(0, goods.length - 1);
        return goods[index];
    }

    /**
     * 返回店铺ID
     */
    public Long getShopId() {
        long base = 2812669820L;
        return base + RandomUtil.randomInt(1, 20);
    }
}
